package com.abing.strategy.context;

import com.abing.strategy.factory.StrategyFactory;
import com.abing.strategy.strategy.PayStrategy;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;

/**
 */
@Component
public class PayContextStrategy {

    /**
     * 获取具体策略实现
     *
     * @return
     */
    public String toPayHtml(String payCode) {
        if (StringUtils.isEmpty(payCode)) {
            return "payCode不能为空!.....";
        }
        //1、这是通过工厂+枚举获取的策略，
        PayStrategy payStrategy= StrategyFactory.getPayStrategy(payCode);

        //2、也可以通过渠道数据库存表，有的业务需要存表，有的业务不需要存表，例如:渠道需要存表
        assert payStrategy != null;
        return payStrategy.toPayHtml();
    }
    // 工厂负责对象初始化
}
